package fr.afcepf.ai90.venteenligne.data;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.sql.DataSource;

import fr.afcepf.ai90.venteenligne.datasource.SimpleDataSource;
import fr.afcepf.ai90.venteenligne.entity.Personne;
import fr.afcepf.ai90.venteenligne.entity.Produit;

public class DataProduit implements IDataProduit{

	private List<Produit> pdts = new ArrayList<Produit>();
	private int indiceNom =1;
	
	 private String reqVerifConnection="SELECT * FROM produit p where p.nom like ?";
	/**
	 * nom de la colonne id dans la table 
	 */
	private String paramId ="id";
	/**
	 * nom de la colonne nom dans la table 
	 */
	private String paramNom ="nom";
	/**
	 * nom de la colonne description dans la table 
	 */
	private String paramDescription ="description";
	/**
	 * nom de la colonne prix dans la table 
	 */
	private String paramPrix ="prix";
	 
	@Override
	public List<Produit> rechercher(String nom) {
		
		System.out.println("dans data");
		DataSource dc = new SimpleDataSource();
        
        Connection cnx;
        try {
            cnx = dc.getConnection();
           PreparedStatement pstmt = cnx.prepareStatement(reqVerifConnection);
           pstmt.setString(indiceNom, "%" + nom + "%");


           ResultSet rs = pstmt.executeQuery();
           if(rs.next()){
               Produit pdt = new Produit(rs.getInt(paramId),rs.getString(paramNom),
            		   rs.getString(paramDescription),rs.getDouble(paramPrix));
               pdts.add(pdt);
               System.out.println(pdt.getNom());
           }
           rs.close();
           pstmt.close();
           cnx.close();

       } catch (SQLException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
		
		return pdts;
	}

	/**
	 * @return the pdts
	 */
	public List<Produit> getPdts() {
		return pdts;
	}

	/**
	 * @param pdts the pdts to set
	 */
	public void setPdts(List<Produit> pdts) {
		this.pdts = pdts;
	}

	/**
	 * @return the indiceNom
	 */
	public int getIndiceNom() {
		return indiceNom;
	}

	/**
	 * @param indiceNom the indiceNom to set
	 */
	public void setIndiceNom(int indiceNom) {
		this.indiceNom = indiceNom;
	}

	/**
	 * @return the reqVerifConnection
	 */
	public String getReqVerifConnection() {
		return reqVerifConnection;
	}

	/**
	 * @param reqVerifConnection the reqVerifConnection to set
	 */
	public void setReqVerifConnection(String reqVerifConnection) {
		this.reqVerifConnection = reqVerifConnection;
	}

	/**
	 * @return the paramId
	 */
	public String getParamId() {
		return paramId;
	}

	/**
	 * @param paramId the paramId to set
	 */
	public void setParamId(String paramId) {
		this.paramId = paramId;
	}

	/**
	 * @return the paramNom
	 */
	public String getParamNom() {
		return paramNom;
	}

	/**
	 * @param paramNom the paramNom to set
	 */
	public void setParamNom(String paramNom) {
		this.paramNom = paramNom;
	}

	/**
	 * @return the paramDescription
	 */
	public String getParamDescription() {
		return paramDescription;
	}

	/**
	 * @param paramDescription the paramDescription to set
	 */
	public void setParamDescription(String paramDescription) {
		this.paramDescription = paramDescription;
	}

	/**
	 * @return the paramPrix
	 */
	public String getParamPrix() {
		return paramPrix;
	}

	/**
	 * @param paramPrix the paramPrix to set
	 */
	public void setParamPrix(String paramPrix) {
		this.paramPrix = paramPrix;
	}

	

}
